//
//  SYDDataBase.h
//  CoreDataDemo
//
//  Created by 孙元东 on 2018/3/8.
//  Copyright © 2018年 MuJin. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#import "Person.h"
#import "Singleton.h"
@interface SYDDataBase : NSObject

//创建单例对象
SingletonH(SYDDataBase)

//管理对象上下文
//这里声明为readonly的目的主要是重写get方法使其成为计算型属性
@property(nonatomic,strong,readonly)NSManagedObjectContext *managedObjectContext;

//通过方法返回iOS10的NSPersistentContainer
//如果是iOS9，则返回nil
//该方法的目的主要是便于使用ios10的多线程操作数据库
- (NSPersistentContainer *)getCurrentPersistentContainer;

/**打开或者创建数据库*/
-(void)openOrCreateSqlite:(NSString *)sqliteName;

/**
 插入数据
 @param name 实体名字
 */
-(void)insertDataFromEntityName:(NSString *)name model:(Person *)model;

/**
 删除数据
 @param name 实体名字
 */
-(void)deleteDataFromEntityName:(NSString *)name;

/**
 更新数据

 @param name 实体名字
 */
-(void)updateDataFromEntityName:(NSString *)name;

/**
 查询数据
 @param name 实体名字
 */
-(NSArray *)readDataFromEntityName:(NSString *)name;

/**
 排序
 @param name 实体名字
 @return 数组
 */
-(NSArray *)sortDataFromEntityName:(NSString *)name;

/**
 查找
 @param name 实体名字
 @param condition 查找条件
 */
-(NSArray *)getAllDataFromEntityName:(NSString *)name withCondition:(NSString *)condition;
@end
